using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;

namespace Easy.Geo.Kml
{
    public class Style : StyleSelector
    {
        public Style() : base() { }
        public Style(string id) : base(id) 
        {            
        }
        private LineStyle _LineStyle;

        public LineStyle LineStyle
        {
            get { return _LineStyle; }
            set { _LineStyle = value; }
        }
        private IconStyle _IconStyle;

        public IconStyle IconStyle
        {
            get { return _IconStyle; }
            set { _IconStyle = value; }
        }
        private LabelStyle _LabelStyle;

        public LabelStyle LabelStyle
        {
            get { return _LabelStyle; }
            set { _LabelStyle = value; }
        }
        private PolyStyle _PolyStyle;

        public PolyStyle PolyStyle
        {
            get { return _PolyStyle; }
            set { _PolyStyle = value; }
        }
        private BalloonStyle _BalloonStyle;

        public BalloonStyle BalloonStyle
        {
            get { return _BalloonStyle; }
            set { _BalloonStyle = value; }
        }

        public LineStyle GetLineStyle()
        {
            if (this._LineStyle == null)
            {
                this._LineStyle = new LineStyle();
            }
            return this._LineStyle;
        }

        public IconStyle GetIconStyle()
        {
            if (this._IconStyle == null)
            {
                this._IconStyle = new IconStyle();
            }
            return this._IconStyle;
        }

        public LabelStyle GetLabelStyle()
        {
            if (this._LabelStyle == null)
            {
                this._LabelStyle = new LabelStyle();
            }
            return this._LabelStyle;
        }

        public PolyStyle GetPolyStyle()
        {
            if (this._PolyStyle == null)
            {
                this._PolyStyle = new PolyStyle();
            }
            return this._PolyStyle;
        }

        public BalloonStyle GetBalloonStyle()
        {
            if (this._BalloonStyle == null)
            {
                this._BalloonStyle = new BalloonStyle();
            }
            return this._BalloonStyle;
        }
    }
}
